package com.example.distributed.locks.annotations;

import java.lang.annotation.*;

/**
 * @author 谢汉冰
 * @Title: RedisLock
 * @Package com.example.distributed.locks.annotations
 * @date 2023/10/23 15:16
 * @description:
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RedisLock {


	/**
	 * 锁过期时间，默认60
	 *
	 * @return
	 */
	int timeOut() default 60;

	/**
	 * 锁名称,默认取方法签名
	 *
	 * @return
	 */
	String name() default "";


	/**
	 * 执行完成后是否释放锁资源,默认立即释放
	 *
	 * @return
	 */
	boolean afterExecuteRelease() default true;
}

